L1-002 打印沙漏

题目 打印沙漏

image-9e10e6e2

思路分析

image-05da2ac6

代码实现

#include<bits/stdc++.h>

using namespace std;

#define endl '\n'

//由推导可得 第n个图形 共需要2n^2-1个*  最外层有2n-1个*

const int N=1010;

int var;

char chr;

int main()

{

	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

	cin>>var>>chr;

	int n;

	for(int i=1;i<N;i++){

		if((2*i*i-1)>var){

			n=i-1;

			break;

		}

	}

	int shengyu=var-(2*n*n-1);

	int topnum=2*n-1;

//	cout<<shengyu<<" "<<topnum;

	for(int i=n;i>0;i--){

		for(int j=0;j<n-i;j++)	cout<<" ";

		for(int j=0;j<2*i-1;j++)	cout<<chr;

		cout<<endl;

	}

	for(int i=2;i<=n;i++){

		for(int j=0;j<n-i;j++)	cout<<" ";

		for(int j=0;j<2*i-1;j++)	cout<<chr;

		cout<<endl;

	}

	cout<<shengyu;

	return 0;

 }

同类题型

视频讲解


⬅️ L1-001 Hello World 🏠 00-天梯赛 ➡️ L1-003 个位数统计